package edu.stanford.prpl.api;

import java.io.InputStream;
import java.io.OutputStream;
import java.io.Serializable;
import java.util.Calendar;

public interface BlobResource extends Resource, Serializable {

	String getContentHash();

	Calendar getBlobLastModifiedDate();

	long getSize();

	String getSourceURI();

	String getMimeType();

	void setMimeType(String mimeType);

	void setContentHash(String contentHash);

	void setBlobLastModifiedDate(Calendar date);

	void setSize(long size);

	void setSourceURI(String sourceURI);

	InputStream getBlob();

	void setBlob(InputStream inputstream);

	// Additional FS calls

	byte[] getBlob(int startPosition, int len);

	void setBlob(int startPosition, byte[] data);
	
}
